1. Field of the Invention
The present invention relates to a video encoding system, and more particularly, to a method and apparatus to encode a moving image using fixed computational complexity, irrespective of characteristics of the moving image.
2. Description of the Related Art
Conventionally, a moving image is encoded using hardware. However, an improvement in performance of a central processing unit (CPU) of a personal computer (PC) and development of a high-performance media processor make it possible to encode the moving image using software. Consequently, an encoding technique to effectively reduce an amount of calculation is required to compress and restore the moving image in real time. For instance, if a motion of the moving image is estimated with a conventional video encoder according to H.263 standards using an n-step search, a discrete cosine transform (DCT)/inverse DCT module accounts for thirty percent (30%) of the processing time in a conventional video encoder. To reduce such computational complexity, the conventional video encoder uses a DCT skipping technique.
FIG. 1 is a block diagram of a conventional video encoding system. First, input video data is divided into group-of-pictures (GOP) units. A discrete cosine transform (DCT) unit 120 performs a DCT process on the video data on 8×8 block-by-block basis to obtain spatial redundancy in the video data. A quantizer (Q) 130 quantizes the video data on which the DCT process is performed. An inverse quantizer (IQ) 150 inversely quantizes the video data quantized by the Q 130. An inverse DCT (IDCT) 160 performs an IDCT process on the video data that is inversely quantized by the IQ 150. A frame memory (FM) unit 170 stores the video data, which is IDCT processed by the IDCT unit 160, in frame units. A motion estimation (ME) unit 180 estimates a motion vector (MV) and a sum of absolute difference (SAD) of the moving image per macro block using video data of a current frame and video data of a previous frame stored in the FM unit 170. A variable length coding (VLC) unit 140 removes statistical redundancy in the video data quantized according to the MV estimated by the ME unit 180.
A DCT skipping unit 110 receives the SAD per block estimated by the ME unit 180 or a quantization parameter (QP) generated by the Q 130, compares the SAD or the QP with a threshold value T, and sends to the DCT unit 120 the comparing result as skipping information on the 8×8 block-by-block basis. That is, the DCT skipping unit 110 restricts the video data not to be coded if a ratio SAD/QP is smaller than the threshold value T, which means that an end of block is approximately 0, and allows the DCT unit 120 to perform the DCT process on the video data if the ratio SAD/QP is larger than the threshold value T. However, in a case that the threshold value T is a fixed value within a video sequence, complexity in DCT computation becomes different per macro block or frame. In particular, when a software video encoder is executed by a PC or a media processor, real-time encoding is impossible due to limits in the computational complexity of the PC or media processor if the DCT computational complexity changes according to the macro block or the frame.